A typical computer system has at least a microprocessor and memory. The microprocessor processes, i.e., executes, instructions to accomplish various tasks of the computer system. Such instructions, along with the data required by the microprocessor when executing these instructions, are stored in some form of memory. FIG. 1 shows a typical computer system having a microprocessor (10) and some form of memory (12). The microprocessor (10) has, among other things, a central processing unit (also known and referred to as xe2x80x9cCPUxe2x80x9d or xe2x80x9cexecution unitxe2x80x9d) (14) and a memory controller (also known as xe2x80x9cload/store unitxe2x80x9d) (16). The CPU (14) is where the actual arithmetic and logical operations of the computer system take place. To facilitate the execution of operations by the CPU (14), the memory controller (16) provides the CPU (14) with necessary instructions and data from the memory (12). The memory controller (16) also stores information generated by the CPU (14) into the memory (12).
Memory, as shown in FIG. 1, is typically formed by numerous storage cells, where each storage cell contains a bit of data. Memory organized in such a fashion is called a xe2x80x9cmemory array.xe2x80x9d The data in each storage cell can have either a logic low value, i.e., xe2x80x980,xe2x80x99 or a logic high value, i.e., xe2x80x981.xe2x80x99 As a result, the value(s) of one or more storage cells are often used to represent numbers, characters, instructions, etc. Accordingly, to ensure that data in a storage cell is properly read and stored, important consideration must be afforded to how a memory array is designed.
FIG. 2 shows a typical implementation of a memory array (20). The memory array (20) has numerous storage cells (also known and referred to as xe2x80x9cmemory elements,xe2x80x9d xe2x80x9cmemory cells,xe2x80x9d and xe2x80x9cregister file cellsxe2x80x9d) (36), where each storage cell (36) is connected to a bit line (also known as xe2x80x9crow linexe2x80x9d) (40) and a word line (also known as xe2x80x9ccolumn linexe2x80x9d) (42). Word lines (42) are selected using a row decoder (32) that drives a particular word line (42) using a word line driver (34). Bit lines (30) are selected using a column decoder (30), where a value on a bit line (40) is driven to a sense amplifier (44) by a bit line driver (38). A storage cell (36) is selected for a read/write operation by some combination of activating the bit line (40) connected to the storage cell (36) and activating the word line (42) connected to the storage cell (36).
Accurately and quickly reading data from a memory array, such as the one shown in FIG. 2, is challenging because of both large physical sizes of the memory array and a high number of entries, i.e., storage cells, in the memory array.
FIG. 3 shows a typical implementation of a storage cell (36). One technique used by designers to increase read operation performance is to use a pre-charge device (50) to pre-charge a bit line (40) to a logic high value, i.e., xe2x80x981,xe2x80x99 prior to a read operation (also referred to as xe2x80x9cpre-charge phasexe2x80x9d), and then to perform, i.e., evaluate, the read operation (also referred to as xe2x80x9cevaluation phasexe2x80x9d) on the storage cell (36) by allowing the bit line (40) connected to the particular storage cell (36) to discharge if the particular storage cell (36) holds a xe2x80x980xe2x80x99 value. If, however, the bit line (40) does not discharge, it implies that the particular storage cell (36) connected to the bit line holds a xe2x80x981xe2x80x99 value.
Still referring to FIG. 3, during a read operation, a pass device (48) is switched xe2x80x98onxe2x80x99 by some input at its gate terminal. If the storage cell (36) holds a xe2x80x980xe2x80x99 value, then a footer device (46), which has one terminal connected to ground, is xe2x80x98onxe2x80x99 causing the bit line (40) to discharge through the xe2x80x98onxe2x80x99 pass and footer devices (48, 46).
In attempting to increase the speed of storage cell access, designers have increased the size of the pass device (shown in FIG. 3) to add drive strength to the storage cell. However, increasing the pass device size also increases the capacitance on the bit line to which the pass device is connected. Such an increase in bit line load slows down storage cell access. Thus, the net gain in speed due to increasing the pass device size is much smaller in proportion to the increase in the size of the pass device. Further still, the increase in size of the pass device leads to increased power consumption, which is in proportion to the increase in size of the pass device. Accordingly, an incremental gain in pass device size causes a corresponding increase in power consumption. Thus, there is a need for a memory design that has low power consumption without a loss in storage cell access speed.
According to one aspect of the present invention, an integrated circuit that has a memory comprises a bit line and a storage cell connected to the bit line, where the storage cell comprises a pass device connected to the bit line and a footer device connected to the pass device, where the footer device facilitates driving the bit line through the pass device based on a value stored in the storage cell, and where the pass device and the footer device are asymmetric.
According to another aspect, an integrated circuit comprises storing means for storing a value, propagating means for propagating the value from the storing means, a first driver means for driving the propagating means, and a second driving means for driving the propagating means, where the first driver means and the second driver means are asymmetric.
According to another aspect, a method for performing memory operations in an integrated circuit comprises: storing a value in a memory element, where the memory element is connected to a bit line; and facilitating driving the bit line through a pass device and a footer device based on the value stored in the memory element, where the pass device and the footer device are asymmetric.
Other aspects and advantages of the invention will be apparent from the following description and the appended claims.